package com.ctshk.rpc.order.airexpress.req.app;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * <p>
 * 机场快线订单表
 * </p>
 *
 * @author 叶冠峰
 * @since 2021-02-23
 */
@Data
@ApiModel(value = "AirportExpressOrderAppReq对象", description = "机场快线订单表")
public class AirportExpressOrderAppReq implements Serializable {
    private static final long serialVersionUID = 1L;

    @NotNull(message = "机场快线产品ID不能为空")
    @ApiModelProperty(value = "机场快线产品id", required = true)
    private Long airportExpressId;

    @NotNull(message = "购买数量不能为空")
    @ApiModelProperty(value = "购买数量")
    private Integer number;

    @NotNull(message = "成人票数必须大于等于1")
    @Min(value = 1, message = "成人票数必须大于等于1")
    @ApiModelProperty(value = "成人票数", required = true)
    private Integer adultTicketNumber;

    @ApiModelProperty(value = "小童票数")
    private Integer childrenTicketNumber;

    @NotBlank(message = "联系人姓不能为空")
    @ApiModelProperty(value = "联系人姓", required = true)
    private String surname;

    @NotBlank(message = "联系人名不能为空")
    @ApiModelProperty(value = "联系人名", required = true)
    private String name;

    @NotBlank(message = "联系人手机不能为空")
    @ApiModelProperty(value = "联系人手机", required = true)
    private String contactMobile;

    @NotNull(message = "联系人手机区号不能为空")
    @ApiModelProperty(value = "联系人手机区号id", required = true)
    private Long contactMobileAreaCodeId;

    @ApiModelProperty(value = "联系人手机区号", required = true)
    private String contactMobileAreaCode;

    @ApiModelProperty(value = "联系人国籍ID", required = true)
    private String contactCountryId;

    @ApiModelProperty(value = "联系人国籍", required = true)
    private String contactCountryName;

    @ApiModelProperty(value = "联系人邮箱")
    private String contactEmail;

    @ApiModelProperty(value = "是否使用会员(0:不使用,1:使用)")
    private Integer ifMember;

    @ApiModelProperty(value = "备注")
    private String remark;

    @NotNull(message = "称谓不能为空(1:先生,2:女士,3:小姐)")
    @Range(min = 1, max = 3, message = "称谓不正确(1:先生,2:女士,3:小姐)")
    @ApiModelProperty(value = "联系人称谓，枚举TouristType(1:先生,2:女士,3:小姐)")
    private Integer gender;

    @ApiModelProperty(value = "收据抬头(存在收据抬头就有收据，不存在就没有收据)")
    private String receiptTitle;

    @ApiModelProperty(value = "C端下单用户id",hidden = true)
    private Long userId;
}
